package com.yjd.pub.order.dao;

import com.yjd.comm.base.dao.IBaseDao;
import com.yjd.comm.merchant.dto.OrderStatisticDto;

import java.util.List;
import java.util.Map;

/**
 * <b>description</b>：订单数据访问接口<br>
 * <b>time</b>：2017-06-27 08:53:50 <br>
 * <b>author</b>：  yangchangyan@yijiedai.com
 */
public interface IOrderDao extends IBaseDao{

    /**
     * 获取退款订单列表
     *
     * @param paramMap 查询参数列表
     * @param write 是否是操作主库
     * @return 返回结果列表
     * @throws Exception
     */
    @SuppressWarnings("rawtypes")
    public List queryRefundOrder(Map<String, Object> paramMap, boolean write) throws Exception;

    /**
     * 查询结算订单
     *
     * @param paramMap 查询参数列表
     * @param write 是否是操作主库
     * @return 返回结果列表
     * @throws Exception
     */
    public List querySettlementOrder(Map<String, Object> paramMap, boolean write) throws Exception;

    /**
     * 更新订单失效状态
     * @param parmMap
     * @return
     * @throws Exception
     */
    public int updateInvalidOrderStatus(Map<String,Object> parmMap)throws Exception;

    /**
     *  统计用户的订单情况，如：总订单数，还款中订单数，还款完成订单数，逾期订单数等
     * @throws Exception
     */
    public OrderStatisticDto orderStatisticByUser(Long user_id, Map<String, Object> parmMap) throws Exception;
}